Cross-Collateral Deposits
Drift supports cross-collateral token deposits, specifically: USDC and SOL. These can be used for margin within the Perpetuals Markets.
By default, markets are quoted in USD and P&L is settled in USDC. All tokens deposited within the protocol can earn yield via Borrow/Lend. Until unrealised P&L is settled into your Balances, it will not earn (if profits) or be charged (if losses) the deposit/borrow interest respectively.
Below is a table of assets supported by Drift Protocol.
Each asset counts towards margin for derivatives trading and has a weight applied to account for their respective volatilities.
For instance, depositing USDC gives users a 1:1 margin for derivatives trading, but depositing SOL (80% asset weight) means that 80% of the value of your SOL at the opening of your position will be available as margin for perpetual futures trading.
Margin Parameters
Asset | Initial Asset Weight | Maintenance Asset Weight | Initial Liability Weight | Maintenance Liability Weight | IMF Factor |
---|---|---|---|---|---|
USDC | 100% | 100% | 100% | 100% | 0 |
SOL | 80% | 90% | 120% | 110% | 0.003 |
mSOL | 80% | 90% | 120% | 110% | 0.003 |
wBTC (portal) | 80% | 90% | 120% | 110% | 0.105 |
wETH (portal) | 80% | 90% | 120% | 110% | 0.025 |
USDT | 90% | 95% | 110% | 105% | 0.0004 |
JitoSOL | 80% | 90% | 120% | 110% | 0.00055 |
PYTH | 50% | 75% | 150% | 125% | 0.001 |
bSOL | 80% | 90% | 120% | 110% | 0.00055 |
The IMF Factor acts as a discount on account size:
Initial Asset Weight
on 2000 SOL Collateral (using above) would be:
weight = min (.80, 1.1 / [ 1 + (0.003 * sqrt(2000)] )
= min(.80, ~.96987) = .80
An asset's liability weight can be converted into an LTV ratio using:
ltv = 1 / liability weight
Asset | Initial LTV | Max LTV |
---|---|---|
SOL | 83.3% | 90.9% |
Based on these parameters, along with other parameters such as the oracle price, token decimals, etc, Drift can dynamically calculate deposits to be scaled on their initial asset weights. As a reference, you can check out the SpotMarket
get_scaled_initial_weight_asset
function.